﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ProyectoGrupo5.ClasesDominio;
using ProyectoGrupo5.Persistencia;

namespace ProyectoGrupo5.Negocio
{
    public class CandidatoService
    {
        // Dependencias
        public IAvisoDAO      AvisoDAO { get; set; }
        public ICandidatoDAO  CandidatoDAO { get; set; }
        public IOfertanteDAO  OfertanteDAO { get; set; }
        public IPostulanteDAO PostulanteDAO { get; set; }

       
        public Candidato RealizarPostulacion(Int32 candidatoCodigo, Int32 avisoCodigo, Int32 postulanteCodigo)
        {
           Candidato candidatoACrear = new Candidato();
           Aviso aviso = AvisoDAO.ObtenerAviso(avisoCodigo);
           Postulante postulante = PostulanteDAO.ObtenerPostulante(postulanteCodigo);
           candidatoACrear.CodigoCandidato = candidatoCodigo;
           candidatoACrear.Aviso = aviso;
           candidatoACrear.EstadoSeleccion = "Postulante";
           candidatoACrear.Postulante = postulante;
           return CandidatoDAO.CrearCandidato(candidatoACrear);
        }

       public ICollection<Aviso> ConsultarAvisosXOfertante(Int32 codigoOfertante)
        {
           Ofertante ofertanteExistente = OfertanteDAO.ObtenerOfertanteCodigo(codigoOfertante);
           if (codigoOfertante == 0 || String.Empty.Equals(codigoOfertante))
              throw new Exception("Código de ofertante no es válido");
           if (ofertanteExistente == null)
              throw new Exception("Ofertante no existe");
           return null; // AvisoDAO.ListarXOfertante(codigoOfertante);
        }

        /*       public ICollection<Reserva> ConsultarPostulacionsXPostulante(String alumnoCodigo)
               {
                   Alumno alumnoExistente = AlumnoDAO.Obtener(alumnoCodigo);
                   if (alumnoCodigo == null || String.Empty.Equals(alumnoCodigo))
                       throw new Exception("Código de alumno no válido");
                   if (alumnoExistente == null)
                       throw new Exception("Alumno inexistente");
                   return ReservaDAO.ListarXAlumno(alumnoCodigo);
               }*/
    }
}